//
//  FBtSession+HSH.m
//  JwPackDemo
//
//  Created by 陈警卫 on 2025/8/15.
//

#import "FBtSession+HSH.h"
#import "FBtMessageModel+Model.h"

@implementation FBtSession (HSH)

/// 握手协议
- (void)handshakeMessageModel:(FBtMessageModel *)messageModel {
    UInt8 func = messageModel.func;
    if (func == 0x2A || func == 0x2B || func == 0x2C) {
        FBtMessageModel *sendMessageMode = [[FBtMessageModel alloc] init];
        if (func == 0x2A) {
            sendMessageMode.signal = FBtSig_handshakeAA;
        } else if (func == 0x2C) {
            sendMessageMode.signal = FBtSig_handshakeAC;
        } else if (func == 0x2B) {
            sendMessageMode.signal = FBtSig_handshakeAB;
            // 握手成功 心跳连接
            [self startTimerHeart];
        }
        sendMessageMode.prefix = 0x7E7E;
        sendMessageMode.suffix =0xE7E7;
        [sendMessageMode setupCompleData];
        [self sendWithMessageModel:sendMessageMode];
    }
}

/// 结束心跳计时器
- (void)endTimerHeart {
    [self.timerHeart stop];
    self.timerHeart = nil;
}

/// 开始心跳计时器
- (void)startTimerHeart {
    
    if (self.timerHeart) {
        return;
    }
    __weak typeof(self) wself = self;
    self.timerHeart = [CXGCDTimer startWithInterval:10 handler:^{
        [wself timerHeartAction];
    }];
}

- (void)timerHeartAction {
    FBtMessageModel *messageModel = [FBtMessageModel modelWithSignal:(FBtSig_heartbeat)];
    [messageModel send];
}





@end
